package com.tydic.product.domain.bo;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.Pattern;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

@Data
public class ProductBo implements Serializable {
    @Serial
    private static final long serialVersionUID = -6498444023795799987L;
    private String id;
    /**
     * 申报单号
     */
    @NotBlank(message = "申报单号不能为空!")
    private String declarationNumber;

    /**
     * 商品类别id
     */
    private String productCostId;

    /**
     * 商品类别名称
     */
    private String productCostCategory;

    /**
     * 商品名称
     */
    private String productCostName;

    /**
     * 商品标题
     */
    @NotBlank(message = "商品标题不能为空!")
    private String title;

    /**
     * 商品规格
     */
    private String specification;

    /**
     * 商品数量
     */
    @Pattern(regexp = "\\d+|\\d+.\\d+", message = "请输入正确的数量!")
    private String quantity;

    /**
     * 数量规格单位
     */
    private String measureUnit;

    /**
     * 商品数量单位
     */
    @NotBlank(message = "请选择商品数量单位")
    private String quantityUnit;

    /**
     * 商品价格
     */
    @NotBlank(message = "商品价格不能为空!")
    @Pattern(regexp = "\\d+|\\d+.\\d+", message = "请输入正确的金额!")
    private String price;

    /**
     * 最终销售价格
     */
    @NotBlank(message = "销售价格不能为空!")
    @Pattern(regexp = "\\d+|\\d+.\\d+", message = "请输入正确的金额!")
    private String realPrice;

    /**
     * 商品海报list
     */
    private List<String> posterList;

    /**
     * 申报图片list
     */
    @NotEmpty(message = "申报单不能为空!")
    private List<String> declarationPhotoList;

    /**
     * 车辆信息
     */
    private ArrayList<String> carNumbers;

    /**
     * 总成本价
     */
    private String totalPrice;
    /**
     * 总销售价
     */
    private String totalRealPrice;
    /**
     * 总数量
     */
    private String totalQuantity;
}
